﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Presentacion
{
    public class encriptaje
    {
        /// <summary>
        /// Desencripta cualquier tipo de cadena de caracteres mediante la utilizacion de Libreria Rijndael
        /// </summary>
        /// <param name="_textoADesencriptar">Cadena de caracteres a Encriptar</param>
        /// <returns>Cadena de caracteres a Encriptada</returns>
        public string decodeControlAsistencia(object _textoADesencriptar)
        {
            string id = _textoADesencriptar.ToString();
            //Dividimos el valor encriptado en un string[]
            string[] vlEnEncrypt = id.Split('/');
            string[] vlEncode = vlEnEncrypt[0].Split(',');
            string[] vlKey = vlEnEncrypt[1].Split(',');
            string[] vlIV = vlEnEncrypt[2].Split(',');
            //Creamos las variables byte[] y le creamos el tamaño
            byte[] vlByEncode = new byte[vlEncode.Length];
            byte[] vlByKey = new byte[vlKey.Length];
            byte[] vlByIV = new byte[vlIV.Length];
            //Variable int que almacena la cantidad de item del array
            int vlConEncode = vlEncode.Length - 1;
            //Recorremos el string[] y le pasamos el valor al byte[]
            for (int i = 0; i <= vlConEncode; i++)
            {
                vlByEncode[i] = byte.Parse(vlEncode[i]);
            }
            //Variable int que almacena la cantidad de item del array
            int vlConKey = vlKey.Length - 1;
            //Recorremos el string[] y le pasamos el valor al byte[]
            for (int i = 0; i <= vlConKey; i++)
            {
                vlByKey[i] = byte.Parse(vlKey[i]);
            }
            //Variable int que almacena la cantidad de item del array
            int vlConIV = vlEncode.Length - 1;
            //Recorremos el string[] y le pasamos el valor al byte[]
            for (int i = 0; i <= vlConIV; i++)
            {
                vlByIV[i] = byte.Parse(vlIV[i]);
            }
            //Mandamos a desencriptar el texto
            string vlValue = Presentacion.Rijndael.Decode(vlByEncode, vlByKey, vlByIV).ToString();

            return vlValue;
        }


        /// <summary>
        /// Encripta cualquier tipo de cadena de caracteres mediante la utilizacion de Libreria Rijndael
        /// </summary>
        /// <param name="_textoAEncriptar">Texto encriptado</param>
        /// <returns>Cadena de caracteres a desencripta</returns>
        public string encodeControlAsistencia(object _textoAEncriptar)
        {
            var encriptado = Presentacion.Rijndael.Encode(_textoAEncriptar).ToString();

            return encriptado;
        }
    }
}